package com.qf.blog.system.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qf.blog.core.utils.R;
import com.qf.blog.system.entity.SystemUserEntity;
import com.qf.blog.system.service.ISystemUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 前端控制器
 * 后台接口完成，前台页面交给vue来完成
 * </p>
 *
 * @author Java2207
 * @since 2022-12-22
 */
@RestController
@RequestMapping("/sysUser")
public class SystemUserController {

    @Autowired
    private ISystemUserService userService;

    // @RequestBod把请求体中的数据转成独享
    @PostMapping("/page")
    public R page(@RequestBody Page<SystemUserEntity> page) { // JSON
        // 1.调用业务层给page中的属性赋值
        userService.page(page);
        // 2.响应数据
        return R.ok().put("data", page);
    }

    @PostMapping("/save")
    public R save(@RequestBody SystemUserEntity systemUserEntity) {
        systemUserEntity.setCreateTime(new Date());//创建时间赋值
        systemUserEntity.setStatus(1);//状态赋值
        return R.out(userService.save(systemUserEntity));
    }

    @PutMapping("/update")
    public R update(@RequestBody SystemUserEntity systemUserEntity) {
        return R.out(userService.updateById(systemUserEntity));
    }

    @GetMapping("/info/{id}")//根据id来查询
    public R info(@PathVariable Integer id) {
        SystemUserEntity systemUserEntity = userService.getById(id);
        return R.ok().put("data", systemUserEntity);
    }

    // 单个删除，批量删除
    @DeleteMapping("/batchDel") // json数组[1,2,3,4] 没有键值对的方式了，可以直接传
    public R batchDel(@RequestBody List<Integer> id) {
        return R.out(userService.removeBatchByIds(id));
    }
}
